package cn.demoncat.util.mybatis.base;

import cn.demoncat.util.lang.constant.LongConstant;
import cn.demoncat.util.lang.constant.StringConstant;
import cn.demoncat.util.lang.entity.report.ReportEntity;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 报表数据的基类
 * 
 * <br/>
 * 说明：实体类继承本类后，可以获得通用的报表属性；建议Dao和Service也继承 BaseReport系，从而获得通用的报表模型操作。
 * <br/>
 * 说明：每个项目中都有一些统计，而且需要访问权限，所以无法整合。建议每个系统创建一个Report表，通过type区分种类，也可以建多个表来增加辅助字段。
 * 
 * @author 延晓磊
 *
 * @since 2019年12月10日
 */
public class BaseReportEntity<T, P extends Serializable> extends BaseEntity<T, P> implements ReportEntity {
 
	private static final long serialVersionUID = 1L;

	// 统计分类/数据类型
	protected String type = StringConstant.EMPTY;
	// 统计项/数据ID
	protected String item = StringConstant.EMPTY;
	// 统计标题/数据名称
	protected String title = StringConstant.EMPTY;
	// 统计数量/整数值
	protected Long count = LongConstant.N0;
	// 统计金额/浮点值
	protected java.math.BigDecimal sum = BigDecimal.ZERO;
	// 统计时间
	protected String date;
	// 统计时间-年
	protected Integer year;
	// 统计时间-月
	protected Integer month;
	// 统计时间-日
	protected Integer day;
	// 统计时间-时
	protected Integer hour;
	// 创建时间
	protected java.time.LocalDateTime createTime;
	
	/**
	 * 统计分类/数据类型
	 */
	public String getType() {
		return type;
	}
	/**
	 * 统计分类/数据类型
	 */
	public void setType(String type) {
		this.type = type;
	}
	/**
	 * 统计项/数据ID
	 */
	public String getItem() {
		return item;
	}
	/**
	 * 统计项/数据ID
	 */
	public void setItem(String item) {
		this.item = item;
	}
	/**
	 * 统计标题/数据名称
	 */
	public String getTitle() {
		return title;
	}
	/**
	 * 统计标题/数据名称
	 */
	public void setTitle(String title) {
		this.title = title;
	}
	/**
	 * 统计数量/整数值
	 */
	public Long getCount() {
		return count;
	}
	/**
	 * 统计数量/整数值
	 */
	public void setCount(Long count) {
		this.count = count;
	}
	/**
	 * 统计金额/浮点值
	 */
	public java.math.BigDecimal getSum() {
		return sum;
	}
	/**
	 * 统计金额/浮点值
	 */
	public void setSum(java.math.BigDecimal sum) {
		this.sum = sum;
	}
	/**
	 * 统计时间
	 */
	@Override
	public String getDate() {
		return date;
	}
	/**
	 * 统计时间
	 */
	@Override
	public void setDate(String date) {
		this.date = date;
	}
	/**
	 * 统计时间-年
	 */
	@Override
	public Integer getYear() {
		return year;
	}
	/**
	 * 统计时间-年
	 */
	@Override
	public void setYear(Integer year) {
		this.year = year;
	}
	/**
	 * 统计时间-月
	 */
	@Override
	public Integer getMonth() {
		return month;
	}
	/**
	 * 统计时间-月
	 */
	@Override
	public void setMonth(Integer month) {
		this.month = month;
	}
	/**
	 * 统计时间-日
	 */
	@Override
	public Integer getDay() {
		return day;
	}
	/**
	 * 统计时间-日
	 */
	@Override
	public void setDay(Integer day) {
		this.day = day;
	}
	/**
	 * 统计时间-时
	 */
	@Override
	public Integer getHour() {
		return hour;
	}
	/**
	 * 统计时间-时
	 */
	@Override
	public void setHour(Integer hour) {
		this.hour = hour;
	}
	/**
	 * 创建时间
	 */
	@Override
	public java.time.LocalDateTime getCreateTime() {
		return createTime;
	}
	/**
	 * 创建时间
	 */
	@Override
	public void setCreateTime(java.time.LocalDateTime createTime) {
		this.createTime = createTime;
	}

	
	
}
